草庐IT

Python str 与 unicode 类型

全部标签

c# - 在运行时设置强类型数据集连接字符串的最佳方法?

我的Windows窗体应用程序使用强类型数据集,该数据集是使用VisualStudio中的设计器创建的。在运行时,我希望能够选择实时或测试数据库。在运行时以编程方式设置数据集连接字符串的最佳方法是什么? 最佳答案 TableAdapter中的连接属性定义为内部。internalglobal::System.Data.SqlClient.SqlConnectionConnectionSoincaseyourTypedDatasetisnotinthesameassemblyasyourmainwindowsformsapp,youwi

c# - 什么是 (fnptr)* 类型以及如何创建它?

以下IL代码创建一个名为(fnptr)*的Type实例(token0x2000000-无效,模块mscorlib.dll)。ldtokenmethodvoid*()*callclass[mscorlib]System.Type[mscorlib]System.Type::GetTypeFromHandle(valuetype[mscorlib]System.RuntimeTypeHandle)这种类型的目的是什么?是否可以在不编写任何IL代码的情况下在C#中创建此类型实例,也许使用反射?token上的Module.ResolveType抛出ArgumentOutOfRangeExcep

c# - 为什么值类型继承自引用类型?

这个问题在这里已经有了答案:HowdoValueTypesderivefromObject(ReferenceType)andstillbeValueTypes?(6个答案)System.ValueTypeUnderstanding(7个答案)关闭7年前。我有两个问题:我们知道所有类型都派生自Object,它是一个引用类型。我的问题是为什么int-这是一个value类型-继承自引用类型Object?这可能吗?如果int派生自Object,为什么我们在将int传递给需要的函数时需要装箱对象作为参数?通常,当您需要将派生类型的对象作为参数传递给期望基类型对象的函数时,使用引用,您不需要做任

c# - ADO EF - TPH 中派生类型之间的错误映射关联

背景我正在使用.NETFramework3.5SP1在VisualStudio2008SP1中使用ADOEntityFramework编写数据访问库。我正在尝试在两个都派生自抽象类型的实体之间创建关联。我使用TablePerHierarchy表示两个实体继承层次结构(TPH)这意味着只有两个表-每个实体继承层次结构一个。注意您可以使用TablePerType(TPT)来避免这个问题,但它有它自己的缺点。参见here和here在继承持久性模型之间进行选择时了解更多详细信息。这是实体模型的设计器View的屏幕截图:这是数据库架构的屏幕截图:假设当您在ADOEntityFrameworkDe

c# - 为什么 C# 中的内置类型是语言关键字?

在C#中,int或string等标识符实际上是语言级别的关键字。这是什么原因?请注意,如果作者想要禁止使用这些名称的用户类型,那可能会造成语义错误,而不是语法错误。一些基于答案的澄清:它们是关键字,因为它使解析成为可能/更容易我不明白为什么,因为我正在开发一个解析器,并且Type.Rule=Identifier比Type.Rule=Identifier|简单得多。“诠释”|“字符串”|...。它们是关键字,因为它们是特殊的别名var和dynamic也是特殊的东西,但不是关键字(出于兼容性原因,尽管如此,它表明作为关键字不一定是特殊的)。在另一个示例中,将[Serializable]应用

c# - Fluent API 的类型推断

我有以下扩展方法:publicstaticIFooFoo(thisIFluentApiapi,Actionaction);publicstaticIFooFoo(thisIFluentApiapi,Funcfunc);publicstaticIBarBar(thisIFoofoo);publicstaticvoidFooBar(thisIBarbar,Actionaction);publicstaticvoidFooBar(//action);通用接口(interface)总是派生自它们对应的非通用接口(interface)。不幸的是,要完成这项工作:api.Foo(x=>Return

c# - 获取强类型方法的名称

认为我有一个像下面这样的类:publicclassFoo{publicintBar{get;set;}publicintSum(inta,intb){returna+b;}publicintSquare(inta){returna*a;}}所有你知道的,我可以写一个返回给定属性名称的方法:varname=GetPropertyName(f=>f.Bar);//returns"Bar"GetPropertyName方法可以很容易地实现如下:publicstaticstringGetPropertyName(Expression>exp){varbody=exp.BodyasMemberE

c# - 在 Roslyn 分析器中检查表达式类型的正确方法?

我正在使用Roslyn编写代码分析器,我需要检查是否有ExpressionSyntax类型为Task或Task.到目前为止我有这个:privatestaticboolIsTask(ExpressionSyntaxexpression,SyntaxNodeAnalysisContextcontext){vartype=context.SemanticModel.GetTypeInfo(expression).Type;if(type==null)returnfalse;if(type.Equals(context.SemanticModel.Compilation.GetTypeByMe

c# - CodeDom 泛型类型约束

有没有办法用CodeDom生成类约束。因为当我使用类似的东西时varmethod=newCodeMemberMethod();vargenericParam=newCodeTypeParameter("InterfaceType");genericParam.Constraints.Add("class");method.TypeParameters.Add(genericParam);生成的代码是这样的privateInterfaceTypeGetImpl()whereInterfaceType:@class{}我发现最好的解决方法是在课前使用前导空格genericParam.Con

c# - XmlSerializer 在序列化动态加载的类型时抛出异常

我正在尝试使用System.Xml.Serialization.XmlSerializer来序列化动态加载(和编译的类)。如果我将有问题的类构建到主程序集中,一切都会按预期进行。但是,如果我从动态加载的程序集中编译和加载该类,XmlSerializer会引发异常。我做错了什么?我创建了以下.NET3.5C#应用程序来重现该问题:usingSystem;usingSystem.Collections.Generic;usingSystem.Xml.Serialization;usingSystem.Text;usingSystem.Reflection;usingSystem.CodeD